<%# The license inside this block applies to this file.
	# Copyright 2020 Google Inc.
	# Licensed under the Apache License, Version 2.0 (the "License");
	# you may not use this file except in compliance with the License.
	# You may obtain a copy of the License at
	#
	#     http://www.apache.org/licenses/LICENSE-2.0
	#
	# Unless required by applicable law or agreed to in writing, software
	# distributed under the License is distributed on an "AS IS" BASIS,
	# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	# See the License for the specific language governing permissions and
	# limitations under the License.
-%>
if d.Get("load_balancing_scheme").(string) == "INTERNAL_MANAGED" {
	return obj, nil
}

backendServiceOnlyManagedApiFieldNames := []string{
	"capacityScaler",
	"maxConnections",
	"maxConnectionsPerInstance",
	"maxConnectionsPerEndpoint",
	"maxRate",
	"maxRatePerInstance",
	"maxRatePerEndpoint",
	"maxUtilization",
}

var backends []interface{}
if lsV := obj["backends"]; lsV != nil {
	backends = lsV.([]interface{})
}
for idx, v := range backends {
	if v == nil {
		continue
	}
	backend := v.(map[string]interface{})
	// Remove fields from backends that cannot be sent for non-managed
	// backend services
	for _, k := range backendServiceOnlyManagedApiFieldNames {
		log.Printf("[DEBUG] Removing field %q for request for non-managed backend service %s", k, d.Get("name"))
		delete(backend, k)
	}
	backends[idx] = backend
}

obj["backends"] = backends
return obj, nil
